1.子类 class, 工厂子类class, 调用工厂class
2.子类需要抽象类定义子类模式, 工厂类需要定义抽象类规范模式。 每一个工厂类管理    
 管理类管理工厂类。
3.应用:最复杂的模式:一个接口有很多的调用实例,   调用实例可以分为不同情况,不> >      同的工厂进行管理。

4.总起来看,出口要简洁统一,内部分别管理。

 class类的功能要单一,每个只做一种功能,管理一类数据,定义class要不怕>多,通过

上级管理起来
5.提升:所有的子class,工厂class,需要定义抽象类,规范格式。

import random
"""

    
                         
"""

class Dog:
    def speak(self):
        return 'whoof'
    def __str__(self):
        return 'dog'

class Cat:
    def speak(self):
        return 'meow'
    def __str__(self):
        return 'cat'

class DogFactory:
    def get_pet(self):
        return Dog()
    def get_food(self):
        return 'dog food'

class CatFactory:
    def get_pet(self):
        return Cat()
    def get_food(self):
        return 'cat food'

class PetFactory:
    def __init__(self,pet_factory=None):
        self.pet_factory=pet_factory
    def show_pet(self):
        pet=self.pet_factory.get_pet()
        print("This is a lovely", pet)
        print('speak   ==>',pet.speak())
        print('get_food==>',self.pet_factory.get_food())

# Show pets with various factories

def get_factory():

    """Let's be dynamic!"""

    return random.choice([DogFactory, CatFactory])()



shop = PetFactory()

for i in range(3):

    shop.pet_factory = get_factory()

    shop.show_pet()

    print("=" * 10)








龙仔
12 声望4 粉丝